Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


Displaying Raw • Download


tests/backend/support/test_temp_dir.py c0b0ddffd735a0d007c1be9a5e8563ec42fdafc0 (c0b0ddff) Text, 2.03 KB

T8b949e# SPDX-License-Identifier: 0BSD

T8b949e"""Redirect backend test filesystem writes to ./temp-tests/ under the repo root."""

Tff7b72from T7ee787__future__ Tff7b72import Te6edf3annotations

Tff7b72import T7ee787os
Tff7b72import T7ee787shutil
Tff7b72from T7ee787pathlib Tff7b72import Te6edf3Path

Te6edf3REPO_ROOT Tff7b72= Te6edf3PathTb4b4b4(Tff7b72__file__Tb4b4b4)Tff7b72.Td2a8ffresolveTb4b4b4(Tb4b4b4)Tff7b72.Td2a8ffparentsTb4b4b4[T79c0ff3Tb4b4b4]
Te6edf3TEST_TEMP_ROOT Tff7b72= Te6edf3REPO_ROOT Tff7b72/ Ta5d6ff"Ta5d6fftemp-testsTa5d6ff"
Te6edf3TEST_WORK_DIR Tff7b72= Te6edf3TEST_TEMP_ROOT Tff7b72/ Ta5d6ff"Ta5d6ffworkTa5d6ff"
Te6edf3TEST_LOG_DIR Tff7b72= Te6edf3TEST_TEMP_ROOT Tff7b72/ Ta5d6ff"Ta5d6fflogsTa5d6ff"
Te6edf3TEST_COVERAGE_DIR Tff7b72= Te6edf3TEST_TEMP_ROOT Tff7b72/ Ta5d6ff"Ta5d6ffcoverageTa5d6ff"
Te6edf3PYTEST_BASE_TEMP Tff7b72= Te6edf3TEST_TEMP_ROOT Tff7b72/ Ta5d6ff"Ta5d6ffpytestTa5d6ff"


Tff7b72def Td2a8ffis_xdist_workerTb4b4b4(Tb4b4b4) Tff7b72-Tff7b72> Tffa657boolTb4b4b4:
Tff7b72return Te6edf3osTff7b72.Td2a8ffenvironTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6ffPYTEST_XDIST_WORKERTa5d6ff"Tb4b4b4) Tff7b72is Tff7b72not Tff7b72None


Tff7b72def Td2a8ffshould_reset_test_temp_rootTb4b4b4(Tb4b4b4) Tff7b72-Tff7b72> Tffa657boolTb4b4b4:
Tff7b72if Te6edf3osTff7b72.Td2a8ffenvironTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6ffMESHCHAT_TEST_KEEP_TEMPTa5d6ff"Tb4b4b4) Tff7b72== Ta5d6ff"Ta5d6ff1Ta5d6ff"Tb4b4b4:
Tff7b72return Tff7b72False
Tff7b72return Tff7b72not Te6edf3is_xdist_workerTb4b4b4(Tb4b4b4)


Tff7b72def Td2a8ffreset_test_temp_rootTb4b4b4(Tb4b4b4) Tff7b72-Tff7b72> Tff7b72NoneTb4b4b4:
Tff7b72if Tff7b72not Te6edf3should_reset_test_temp_rootTb4b4b4(Tb4b4b4)Tb4b4b4:
Tff7b72return
Tff7b72if Te6edf3TEST_TEMP_ROOTTff7b72.Td2a8ffexistsTb4b4b4(Tb4b4b4)Tb4b4b4:
Te6edf3shutilTff7b72.Td2a8ffrmtreeTb4b4b4(Te6edf3TEST_TEMP_ROOTTb4b4b4, Te6edf3ignore_errorsTff7b72=Tff7b72TrueTb4b4b4)


Tff7b72def Td2a8ffensure_test_temp_dirsTb4b4b4(Tb4b4b4) Tff7b72-Tff7b72> Te6edf3PathTb4b4b4:
Tff7b72for Te6edf3path Tff7b72in Tb4b4b4(
Te6edf3TEST_TEMP_ROOTTb4b4b4,
Te6edf3TEST_WORK_DIRTb4b4b4,
Te6edf3TEST_LOG_DIRTb4b4b4,
Te6edf3TEST_COVERAGE_DIRTb4b4b4,
Te6edf3PYTEST_BASE_TEMPTb4b4b4,
Tb4b4b4)Tb4b4b4:
Te6edf3pathTff7b72.Td2a8ffmkdirTb4b4b4(Te6edf3parentsTff7b72=Tff7b72TrueTb4b4b4, Te6edf3exist_okTff7b72=Tff7b72TrueTb4b4b4)

Te6edf3work_dir Tff7b72= Tffa657strTb4b4b4(Te6edf3TEST_WORK_DIRTb4b4b4)
Te6edf3osTff7b72.Td2a8ffenvironTb4b4b4[Ta5d6ff"Ta5d6ffTMPDIRTa5d6ff"Tb4b4b4] Tff7b72= Te6edf3work_dir
Te6edf3osTff7b72.Td2a8ffenvironTb4b4b4[Ta5d6ff"Ta5d6ffTEMPTa5d6ff"Tb4b4b4] Tff7b72= Te6edf3work_dir
Te6edf3osTff7b72.Td2a8ffenvironTb4b4b4[Ta5d6ff"Ta5d6ffTMPTa5d6ff"Tb4b4b4] Tff7b72= Te6edf3work_dir
Te6edf3osTff7b72.Td2a8ffenvironTb4b4b4[Ta5d6ff"Ta5d6ffMESHCHAT_LOG_DIRTa5d6ff"Tb4b4b4] Tff7b72= Tffa657strTb4b4b4(Te6edf3TEST_LOG_DIRTb4b4b4)
Te6edf3osTff7b72.Td2a8ffenvironTff7b72.Td2a8ffsetdefaultTb4b4b4(Ta5d6ff"Ta5d6ffMESHCHAT_COVERAGE_DIRTa5d6ff"Tb4b4b4, Tffa657strTb4b4b4(Te6edf3TEST_COVERAGE_DIRTb4b4b4)Tb4b4b4)
Te6edf3osTff7b72.Td2a8ffenvironTff7b72.Td2a8ffsetdefaultTb4b4b4(Ta5d6ff"Ta5d6ffCOVERAGE_FILETa5d6ff"Tb4b4b4, Tffa657strTb4b4b4(Te6edf3TEST_COVERAGE_DIR Tff7b72/ Ta5d6ff"Ta5d6ff.coverageTa5d6ff"Tb4b4b4)Tb4b4b4)
Tff7b72return Te6edf3TEST_TEMP_ROOT


Tff7b72def Td2a8ffconfigure_test_temp_environmentTb4b4b4(Tb4b4b4) Tff7b72-Tff7b72> Te6edf3PathTb4b4b4:
Te6edf3reset_test_temp_rootTb4b4b4(Tb4b4b4)
Tff7b72return Te6edf3ensure_test_temp_dirsTb4b4b4(Tb4b4b4)


Tff7b72def Td2a8ffsubprocess_test_envTb4b4b4(Te6edf3extraTb4b4b4: Tffa657dictTb4b4b4[Tffa657strTb4b4b4, Tffa657strTb4b4b4] Tff7b72| Tff7b72None Tff7b72= Tff7b72NoneTb4b4b4) Tff7b72-Tff7b72> Tffa657dictTb4b4b4[Tffa657strTb4b4b4, Tffa657strTb4b4b4]Tb4b4b4:
Te6edf3ensure_test_temp_dirsTb4b4b4(Tb4b4b4)
Te6edf3env Tff7b72= Te6edf3osTff7b72.Td2a8ffenvironTff7b72.Td2a8ffcopyTb4b4b4(Tb4b4b4)
Tff7b72if Te6edf3extraTb4b4b4:
Te6edf3envTff7b72.Td2a8ffupdateTb4b4b4(Te6edf3extraTb4b4b4)
Tff7b72return Te6edf3env


Tff7b72def Td2a8ff_install_test_envTb4b4b4(Tb4b4b4) Tff7b72-Tff7b72> Tff7b72NoneTb4b4b4:
Te6edf3osTff7b72.Td2a8ffenvironTff7b72.Td2a8ffsetdefaultTb4b4b4(Ta5d6ff"Ta5d6ffMESHCHAT_SKIP_STORAGE_LOCKTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ff1Ta5d6ff"Tb4b4b4)
Te6edf3osTff7b72.Td2a8ffenvironTff7b72.Td2a8ffsetdefaultTb4b4b4(Ta5d6ff"Ta5d6ffMESHCHAT_DISABLE_CSRFTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ff1Ta5d6ff"Tb4b4b4)
Te6edf3configure_test_temp_environmentTb4b4b4(Tb4b4b4)


Te6edf3_install_test_envTb4b4b4(Tb4b4b4)


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────